﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using DA_OOMModel;
using DA_OOMModelIDAL;
using DA_OOMDALFactory;
using System.Collections;

namespace DaCredito
{
    public partial class CadastroUsuario : WebPageGridForm
    {

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);


        }

        protected override void PrePageLoad()
        {

            base.PrePageLoad();

            this.ioTipoEntidade = typeof(Usuario);
            this.ioTipoPKEntidade = typeof(UsuarioPK);
            this.isNomeAtributos = new string[2] { "UsrIdUsuario", "UsrDsNome" };

        }
        protected void CadastrarUsuarioButton_Click(object sender, EventArgs e)
        {
            this.OnSave();
            return;
        }

        protected override bool OnUpdate()
        {
            Usuario loUsuarioLogado = (Usuario)Session["Usuario"];        

            // ---------------------------------
            // Cadastro do Usuario
            // ---------------------------------
            int liIdUsuario = Column_UsrIdUsuario.Value == "" ? 0 : Convert.ToInt32(Column_UsrIdUsuario.Value);

            IUsuarioDAL loUsuarioDAO = ConcreteDALFactory.CreateUsuarioDAL();

            Usuario loUsuario = loUsuarioDAO.Load(new UsuarioPK(liIdUsuario));
            if (loUsuario == null)
                loUsuario = new Usuario();

            loUsuario.UsrDsNickname = Column_UsrDsNickname.Text;
            loUsuario.UsrDsSenha = Column_UsrDsSenha.Text;
            loUsuario.UsrDsNome = Column_UsrDsNome.Text;
            loUsuario.UsrDsSobrenome = Column_UsrDsSobrenome.Text;
            loUsuario.UsrDsEmail = Column_UsrDsEmail.Text;
            loUsuario.UsrTpUsuario = TipoUsuario.UsuarioCliente;
            loUsuario.Cliente = loUsuarioLogado.Cliente;

            loUsuario = ControladorDaCredito.GetInstance().CadastrarUsuario(loUsuario);


            return true;

            /* Usuario loUsuario = ClasseControladora.CadastrarUsuario(loUsuario, lsNickname, lsSenha,
                                                                     lsNome, lsSobrenome);*/
        }

        protected override IList GetListaEntidade(object aoEntidadeDAL)
        {
            Usuario loUsuario = (Usuario) Session["Usuario"];
          
            Cliente loCliente = loUsuario.Cliente;

            IUsuarioDAL loUsuarioDAO = ConcreteDALFactory.CreateUsuarioDAL();
            return loUsuarioDAO.FindByCliente(loCliente);
        }
    }
}
